import { getSystemParams } from '@/utils/service';
import { request } from '../request';

export function fetchLogin(params: any) {
  const system = getSystemParams();
  return request<Api.Auth.LoginToken>({
    url: '/auth/login',
    method: 'post',
    data: {
      ...params,
      clientId: system.client_id,
      grantType: system.grant_type,
      tenantId: system.tenant_id
    },
    headers: {
      withToken: false
    }
  });
}

export function fetchLogout() {
  return request({
    url: '/auth/logout',
    method: 'post'
  });
}

// 获取验证码
export function getCode() {
  return request({
    url: 'auth/code',
    method: 'GET',
    headers: {
      withToken: false
    }
  });
}

/**
 * Login
 *
 * @param userName User name
 * @param password Password
 */
// export function fetchLogin(userName: string, password: string) {
//   return request<Api.Auth.LoginToken>({
//     url: '/auth/login',
//     method: 'post',
//     data: {
//       userName,
//       password
//     }
//   });
// }

/** Get user info */
export function fetchGetUserInfo() {
  return request<Api.Auth.UserInfo>({ url: '/system/user/getInfo' });
}

/**
 * Refresh token
 *
 * @param refreshToken Refresh token
 */
export function fetchRefreshToken(refreshToken: string) {
  return request<Api.Auth.LoginToken>({
    url: '/auth/refreshToken',
    method: 'post',
    data: {
      refreshToken
    }
  });
}

/**
 * return custom backend error
 *
 * @param code error code
 * @param msg error message
 */
export function fetchCustomBackendError(code: string, msg: string) {
  return request({ url: '/auth/error', params: { code, msg } });
}
